cssmatcher: Use quarks for classes
authorBenjamin Otte <otte@redhat.com>
Sat, 24 Mar 2012 00:13:50 +0000 (01:13 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 17 Apr 2012 06:59:10 +0000 (08:59 +0200)
gtk/gtkcssmatcher.c
gtk/gtkcssmatcherprivate.h
gtk/gtkcssselector.c

index 7c09d0ca51f4fb8cc40559bcab0380b4e90ebd96..e67c9eff719ecccca281945c7a4c3a97fa3606e5 100644 (file)
@@ -78,15 +78,15 @@ gtk_css_matcher_widget_path_has_name (const GtkCssMatcher *matcher,
 
 static gboolean
 gtk_css_matcher_widget_path_has_class (const GtkCssMatcher *matcher,
-                                       const char          *class_name)
+                                       GQuark               class_name)
 {
   const GtkWidgetPath *siblings;
   
   siblings = gtk_widget_path_iter_get_siblings (matcher->path.path, matcher->path.index);
   if (siblings && matcher->path.sibling_index != gtk_widget_path_iter_get_sibling_index (matcher->path.path, matcher->path.index))
-    return gtk_widget_path_iter_has_class (siblings, matcher->path.sibling_index, class_name);
+    return gtk_widget_path_iter_has_qclass (siblings, matcher->path.sibling_index, class_name);
   else
-    return gtk_widget_path_iter_has_class (matcher->path.path, matcher->path.index, class_name);
+    return gtk_widget_path_iter_has_qclass (matcher->path.path, matcher->path.index, class_name);
 }
 
 static gboolean
@@ -238,7 +238,7 @@ gtk_css_matcher_any_has_name (const GtkCssMatcher *matcher,
 
 static gboolean
 gtk_css_matcher_any_has_class (const GtkCssMatcher *matcher,
-                               const char          *class_name)
+                               GQuark               class_name)
 {
   return TRUE;
 }
@@ -336,7 +336,7 @@ gtk_css_matcher_superset_has_name (const GtkCssMatcher *matcher,
 
 static gboolean
 gtk_css_matcher_superset_has_class (const GtkCssMatcher *matcher,
-                                    const char          *class_name)
+                                    GQuark               class_name)
 {
   if (matcher->superset.relevant & GTK_CSS_CHANGE_CLASS)
     return _gtk_css_matcher_has_class (matcher->superset.subset, class_name);
index b562127eaf041baebf07b9c01e480ea75ee76b44..121e286ce3dee398a9f96567cf3fdabc2d693e7a 100644 (file)
@@ -39,7 +39,7 @@ struct _GtkCssMatcherClass {
   gboolean        (* has_name)                    (const GtkCssMatcher   *matcher,
                                                    const char            *name);
   gboolean        (* has_class)                   (const GtkCssMatcher   *matcher,
-                                                   const char            *class_name);
+                                                   GQuark                 class_name);
   gboolean        (* has_id)                      (const GtkCssMatcher   *matcher,
                                                    const char            *id);
   gboolean        (* has_regions)                 (const GtkCssMatcher   *matcher);
@@ -110,7 +110,7 @@ _gtk_css_matcher_has_name (const GtkCssMatcher *matcher,
 
 static inline gboolean
 _gtk_css_matcher_has_class (const GtkCssMatcher *matcher,
-                            const char          *class_name)
+                            GQuark               class_name)
 {
   return matcher->klass->has_class (matcher, class_name);
 }
index 1c1ae6bb9bb81b4af82d76eb730631e2a57a579a..c124bcff2d92c58319b6af0feec983f60c63412f 100644 (file)
@@ -351,14 +351,14 @@ gtk_css_selector_class_print (const GtkCssSelector *selector,
                               GString              *string)
 {
   g_string_append_c (string, '.');
-  g_string_append (string, selector->data);
+  g_string_append (string, g_quark_to_string (GPOINTER_TO_UINT (selector->data)));
 }
 
 static gboolean
 gtk_css_selector_class_match (const GtkCssSelector *selector,
                               const GtkCssMatcher  *matcher)
 {
-  if (!_gtk_css_matcher_has_class (matcher, selector->data))
+  if (!_gtk_css_matcher_has_class (matcher, GPOINTER_TO_UINT (selector->data)))
     return FALSE;
 
   return gtk_css_selector_match (gtk_css_selector_previous (selector), matcher);
@@ -764,7 +764,7 @@ parse_selector_class (GtkCssParser *parser, GtkCssSelector *selector)
 
   selector = gtk_css_selector_new (&GTK_CSS_SELECTOR_CLASS,
                                    selector,
-                                   g_intern_string (name));
+                                   GUINT_TO_POINTER (g_quark_from_string (name)));
 
   g_free (name);